目錄
在進行物聯網與雲端計算互動之前,必須要先了解網際網路的基礎概念,平時使用者的操作是透過圖形界面與雲端計算進行互動,但當操作的對象是物聯網裝置時,程式開發人員必須要把與雲端計算溝通的內容直接撰寫在物聯網設備上,並將資料透過網際網路傳送到雲端,所以在這裡我們要討論兩個常見的網際網路模型。
網際網路模型會將網路的架構定義為數層服務,每一層皆定義了該層服務所使用的協定(Protocol),用來跟網路的另一端設備進行溝通,而對方也使用相同的協定,這是所謂的對等通訊(peer-to-peer);協定則是清楚的定義該層應有的服務,同時也必須考慮與上層/下層的協定溝通,這種堆疊式的多層模型稱為協定堆疊(protocol stack)。
開放式系統互連 (OSI) 模型是由國際標準組織和其他組織於 1970 年代末開發的。其首版於 1984 年以 ISO 7498 版本出版,而目前的版本則是 ISO/IEC 7498-1:1994。以下是開放系統互連(OSI)模型各層協定的負責內容:
TCP/IP Protocol Suite
TCP/IP 協定組(TCP/IP Protocol Suite或TCP/IP Protocols),由於在網路通訊協定普遍採用分層的結構,當多個層次的協定共同工作時,又稱為TCP/IP協定堆疊(TCP/IP Protocol Stack)。這些協定最早發源於美國國防部(Department of Defense,DoD)的ARPA網專案,因此也稱作DoD模型(DoD Model)。
TCP/IP 協定組各層協定的負責內容:
DoD模型每層大致可對應至OSI模型的七層,如下圖所示。
圖 1. TCP/IP 協定組與 OSI 模型的對應
模型
應用層主要負責支撐整個網路的應用及服務,例如最典型的應用就屬全球資訊網(World Wide Web;WWW)
傳輸層主要提供在不同主機上執行應用程式之間的邏輯通訊。
發送端會將應用層的訊息加上標頭,形成區段,也是所謂的傳輸層的封包。
IP層將處理來自傳輸層的TCP/UDP區段,並將區段(必要時要先對區段做分割)放入IP封包內的資料欄位(稱為Payload),再加上標頭(其中含有目的端位址)後,選擇前往目的端的路徑。
網路層會將IP封包下傳給數據鏈路層,並沿著所選擇的路徑將該封包送至下一節點;在另一端,資料連結層會將所接收的IP封包再傳給其上層(即網路層)。
從上面兩個模型中,可以看出,在網際網路的運作裡:透過模型規劃出大框架,每個模型(Model)裡有數個不同的協定(Protocol),上下層之間的協定與協定透過「封裝(encapsulation)」與「解封裝(decapsulaion)」來交換資料,而不同主機的同一個協定則是透過協定資料單元(Protocol Data Unit, PDU)或是封包(Packet),來交換資料,而PDU裡面的資料主要是換分為表頭(Header)與負載(Payload)。
而不同的 PDU 所對應的名稱,在分別為 TCP/IP Protocols 分別如下:
TCP/IP Protocols | PDU名稱 |
---|---|
應用程式層 | 訊息(message) |
傳輸層 | 區段(segment) |
網路層 | 資料包(datagram) |
資料連結層 | 訊框(frame) |
下圖說明在網際網路上兩個系統 A 與 B 互相溝通資料時,資料是如何被傳送的,在上圖中,在不同層協定溝通時,交換的資料封包會有不同的名稱,比方說在應用程式層的封包也可以稱為訊息(message),而在傳輸層的封包則稱為區段(segment)。而當在主機 A 的系統 A 要將資料傳送給在主機 B 的系統 B 時,主機 A 需要先將資料依照不同層的協定,層層封裝,轉換成電子訊號或是光學訊號發送出去,而主機 B 收到訊號後再透過層層的解封裝,最後將資料交給系統 B。通常來說,使用者開發的系統(A或B)是不需要管理下層協定的,但是有時因為一些效能上或是可靠度的考量,也是需要涵蓋下層協定。
圖 2. 網際網路資料交換說明